package com.example.vue.sys.mapper;

import com.example.vue.sys.domain.SysRole;
import com.github.pagehelper.Page;

import java.util.List;
import java.util.Map;

/**
 * 系统角色管理
 *
 * @author zhouxl
 * @DATE 2020/12/9
 * @descriptoin
 */
public interface SysRoleMapper {

    /**
     * 添加角色
     *
     * @param role
     * @return
     */
    int addRole(SysRole role);

    /**
     * 查询角色列表信息
     *
     * @param params
     * @return
     */
    Page<Map<String, Object>> queryRoleList(Map<String, Object> params);

    /**
     * 通过唯一主键查询角色信息
     *
     * @param params
     * @return
     */
    SysRole queryRole(Map<String, Object> params);

    /**
     * 编辑角色信息
     *
     * @param role
     * @return
     */
    int editRole(SysRole role);

    /**
     * 删除角色信息
     *
     * @param params
     * @return
     */
    int deleteRole(Map<String, Object> params);

    /**
     * 查询角色对应的菜单信息
     *
     * @param params
     * @return
     */
    List<Map<String, Object>> queryRoleMenuTree(Map<String, Object> params);

    /**
     * 存储角色对应的权限信息
     *
     * @param params
     * @return
     */
    int saveRoleMenu(Map<String, Object> params);

    /**
     * 查询角色权限信息
     *
     * @param params
     * @return
     */
    Map<String, Object> queryRoleMenu(Map<String, Object> params);

    /**
     * 删除角色权限信息
     *
     * @param params
     */
    int deleteRoleMenu(Map<String, Object> params);

    /**
     * 查询下路列表的角色信息
     *
     * @param params
     * @return
     */
    List<Map<String, Object>> querySelectRoleList(Map<String, Object> params);

}
